package com.sh.data.engine.repository.dao.taskalarm.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.sh.data.engine.repository.dao.base.EngineBaseModel;
import lombok.*;

/**
 * @author tinglan.ys
 * @description:
 * @date 2022/3/30 下午4:47
 */
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
@TableName("tb_task_alarm_config")
public class TaskAlarmConfigEntity extends EngineBaseModel<TaskAlarmConfigEntity> {

    private Long projectId;

    /**
     * 监控主题 0-离线计算 1-实时计算 2-数据质量 3-数据集成
     */
    private Integer subjectType;

    /**
     * 通知人
     */
    private String receiverId;

    /**
     * 通知人名字
     */
    private String receiverName;

    /**
     * 通知方式 0-邮件
     */
    private Integer receiveType;

    /**
     * 创建人名字
     */
    private String creatorName;

    /**
     * 参考TaskAlarmTypeEnum 0-失败 1-完成 2-运行超时 3-未完成 4-sql语句出错 5-数据质量问题 6-停止 7-异常 8-延时 9-同步失败条数 10-资源超过阈值
     */
    private Integer alarmType;

    //  private String offlineComputingInfo;
    //
    //  private String realTimeComputingInfo;
    //
    //  private String dataQualityInfo;
    //
    //  private String dataIntegrationInfo;
    //
    //  public void setOfflineComputingInfo(OfflineComputing offlineComputing) {
    //    offlineComputingInfo = JSONObject.toJSONString(offlineComputing);
    //  }
    //
    //  public void setRealTimeComputingInfo(RealTimeComputing realTimeComputing) {
    //    realTimeComputingInfo = JSONObject.toJSONString(realTimeComputing);
    //  }
    //
    //  public void setDataQualityInfo(DataQuality dataQuality) {
    //    dataQualityInfo = JSONObject.toJSONString(dataQuality);
    //  }
    //
    //  public void setDataIntegrationInfo(DataIntegration dataIntegration) {
    //    dataIntegrationInfo = JSONObject.toJSONString(dataIntegration);
    //  }
    //
    //  public OfflineComputing getOfflineComputing() {
    //    return JSONObject.parseObject(this.offlineComputingInfo, OfflineComputing.class);
    //  }
    //
    //  public RealTimeComputing getRealTimeComputing() {
    //    return JSONObject.parseObject(this.realTimeComputingInfo, RealTimeComputing.class);
    //  }
    //
    //  public DataQuality getDataQuality() {
    //    return JSONObject.parseObject(this.dataQualityInfo, DataQuality.class);
    //  }
    //
    //  public DataIntegration getDataIntegration() {
    //    return JSONObject.parseObject(this.dataIntegrationInfo, DataIntegration.class);
    //  }
    //
    //  @TableField(exist = false)
    //  private OfflineComputing offlineComputing;
    //
    //  @TableField(exist = false)
    //  private RealTimeComputing realTimeComputing;
    //
    //  @TableField(exist = false)
    //  private DataQuality dataQuality;
    //
    //  @TableField(exist = false)
    //  private DataIntegration dataIntegration;
    //
    //  @Data
    //  public static class OfflineComputing {
    //    /** 离线计算 工作流程 */
    //    private String nodeId;
    //
    //    private String nodeName;
    //
    //    /** 离线计算的是否打断任务 0-不打断 1-打断 */
    //    private Integer isInterrupt;
    //
    //    /** 离线计算的运行超时(分钟) */
    //    private Integer timeout;
    //
    //    /** 离线计算的未完成 yyyy-MM-dd HH:mm:ss */
    //    private String unFinishedTime;
    //
    //    /** 离线计算的占用资源阈值 */
    //    private Double threshold;
    //  }
    //
    //  @Data
    //  public static class RealTimeComputing {
    //    /** 实时计算的工作流程 */
    //    private String id;
    //
    //    private String name;
    //    /** 实时计算 告警对象 就是nodeId对应的name */
    //    // private String ssjsNodeName;
    //
    //  }
    //
    //  @Data
    //  public static class DataQuality {
    //    /** 数据质量的数据表 */
    //    private Long sjzlTblId;
    //
    //    /** 数据质量的数据表名字 */
    //    // private String sjzlTblName;
    //
    //  }
    //
    //  @Data
    //  public static class DataIntegration {
    //    /** 数据集成的任务类型 0-离线采集 1-实时采集 3-http 4 websevice */
    //    private Integer syncType;
    //
    //    /** 数据集成的任务名称 */
    //    private String syncTaskName;
    //
    //    /** 数据集成的任务Id */
    //    private String taskId;
    //
    //    /** 数据集成的失败条数 */
    //    private Integer failedNum;
    //  }
}
